import React, { useEffect } from 'react'
/**
 * 1. axios 配置
 * 2. 拦截器
 * 3. 类型
 * 
 */
import axios from 'axios'
const request = axios.create({
    baseURL:'https://api.github.com/',
    timeout:20000
})
request.interceptors.response.use(response=>response.data)

// ts中发送ajax请求，需要定义响应结果的类型，否则，语法检查过不去
interface IUser{
    avatar_url:string,
    html_url:string,
    id:number,
    login:string
}
type IUsers = IUser[]

interface IResponse {
    items:IUsers
}


export default function TestAxios() {
    useEffect(() => {
        async function _getUsers(){
            // TS语法检查在先，代码运行在后，所以发送ajax请求需要先定义成功结果值的类型，否则语法检查过不了。
            let {items} = await request.get<any,IResponse>('/search/users',{
                params:{
                    q:'aa'
                }
            })
            // console.log('res: ', res.items[0].)
        }
        _getUsers()
    }, [])
    return (
        <div>
            <h3>TestAxios</h3>
        </div>
    )
}
